2023/12/231038字符
查询子串首次出现的位置
如:原串 abccbaxzabc 子串为 axz 结果为5
var str = 'abccbaxzabc';
var subStr = 'axz';
方法1
function getIndex1 (str, sub) {
for (var i = 0; i < str.length - sub.length; i++) {
for (var j = 0; j < sub.length; j ++) {
// 每次循环,j 对应 j+i
if (sub[j] != str[j + i]) { // 只要有一个不符合就跳出
break;
}
if (j == sub.length - 1) {
return i;
}
}
}
return -1; // 没有找到返回 -1
}
console.log(getIndex1(str, subStr)); //--> 5
方法2
function getIndex2 (str, childrenStr) {
var start = 0;
var end = str.length - childrenStr.length;
//console.log(end, str.length);
while (start <= end) {
if (str.slice(start, childrenStr.length + start) === childrenStr) {
return start;
}
start++;
}
return -1;
}